package com.mathdroid.model.abilities.specs.sniper;

import com.mathdroid.model.abilities.Ability;
import com.mathdroid.model.enums.EDmgType;

public final class CorrosiveGrenade extends Ability {
	
	/**
	 * Generated UID.
	 */
	private static final long serialVersionUID = -2033803785241065112L;

	public CorrosiveGrenade() {
		this.setRequiredTalent("Corrosive Grenade");
		this.setName("Corrosive Grenade");
		this.setIconName("stickygrenade");
		this.setResource("Energy");
		this.setCost(20d);
		this.setCooldownMs(12000d);
		this.setDirectDamageType(EDmgType.ENERGY);
		this.setPeriodicDamageType(EDmgType.INTERNAL);
		this.setStandardHealthPercentMax(0.032);
		this.setStandardHealthPercentMin(0.032);
		this.setCoefficient(0.32);
		this.setPeriodicInterval(3000d);
		
		this.setTrainableLevel(20);
	}
	
	@Override
	public String getDescription() {
		return "Hurls a corrosive grenade that spews acid in a 5-meter " +
		"radius on impact, dealing " + this.getMinPeriodic() 
		+ " internal damage over " +
		"21 seconds to up to 3 targets.";
	}

	@Override
	public double getMinPeriodic() {
		return	
		this.getCoefficient() 
		* this.getCharStats().getTotalBonusDamageTechForce()
	
		+ this.getStandardHealthPercentMin() 
		* this.getStdDmg();
	}

	@Override
	public double getMaxPeriodic() {
		return this.getMinPeriodic();
	}

	@Override
	public double getMinDirect() {
		return 0d;
	}

	@Override
	public double getMaxDirect() {
		return 0d;
	}
}
